#nullable enable

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;

namespace PHMEE.EnergyEfficiency;

public interface IAnalogSignalAppService
{
    /// <summary>
    /// 获取实时模拟量信号
    /// </summary>
    /// <param name="vesselId"></param>
    /// <returns></returns>
    Task<List<AnalogGroupDto>> GetRealtimeAnalogSignalsAsync(Guid vesselId);

    /// <summary>
    /// 查询模拟量信号
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="tagName"></param>
    /// <param name="tagDescription"></param>
    /// <param name="startDateTime"></param>
    /// <param name="endDateTime"></param>
    /// <param name="skipCount"></param>
    /// <param name="maxResultCount"></param>
    /// <returns></returns>
    Task<PagedResultDto<AnalogSignalDto>> GetAnalogSignalsAsync(Guid vesselId, string? tagName, string? tagDescription,
        DateTime startDateTime, DateTime endDateTime, int skipCount, int maxResultCount);
        
    // /// <summary>
    // /// 根据 tagNames 查询每个 tag 最新的一条数据
    // /// </summary>
    // /// <param name="vesselId"></param>
    // /// <param name="tagNames"></param>
    // /// <returns></returns>
    // Task<List<AnalogSignalDto>> GetAnalogSignalsByTagnamesAsync(Guid vesselId, List<string> tagNames);
}